package ru.compft.common.dao;

import ru.compft.common.data.AppPermission;

import java.util.List;

/**
 * User: VVasiliev
 * Date: 14.06.12
 * Time: 13:40
 * DAO для работы с правами доступа пользователей
 */
public interface PermissionDao {
    /**
     * Получение списка всех прав доступа системы
     *
     * @return
     */
    List<AppPermission> getAllPermissions();

    /**
     * Получение определенного количества прав доступа (count) с определенного индекса
     *
     * @param from
     * @param count
     * @return
     */
    List<AppPermission> getPermissions(int from, int count);

    /**
     * Подсчитываем все права доступа в БД
     *
     * @return
     */
    int countAllPermissions();

    /**
     * Получение по ID
     *
     * @param id
     * @return
     */
    AppPermission getPermissionById(Long id);

    /**
     * Получение по Коду
     *
     * @param code
     * @return
     */
    AppPermission getPermissionByCode(String code);

    /**
     * Создание нового объекта
     *
     * @param appPermission
     * @return
     */
    boolean createPermission(AppPermission appPermission);

    /**
     * Обновляем данные об объекте
     *
     * @param permission
     * @return
     */
    AppPermission update(AppPermission permission);
}
